`:top
`!Common Intermediate Language`! (`!CIL`!; teilweise auch nur `!Intermediate Language`!, `!IL`!) ist eine `F33f`_`[Zwischensprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Zwischencode]`_`f, in die alle Programme der `F33f`_`[Common Language Infrastructure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Infrastructure]`_`f übersetzt werden. CIL ist eine `F33f`_`[objektorientierte`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Objektorientierung]`_`f `F33f`_`[Assemblersprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Assemblersprache]`_`f und ist vollständig `F33f`_`[stackbasiert`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Stapelspeicher]`_`f. Auf dem Zielcomputer wird die CIL von einem `F33f`_`[Laufzeitsystem`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Laufzeitsystem]`_`f (Virtual Execution System) in systemeigenen Programmcode übersetzt, um in CIL vorliegende Programme ausführen zu können.
CIL ist in frühen Entwicklungsphasen des `F33f`_`[.Net-Frameworks`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.Net-Framework]`_`f als `!Microsoft Intermediate Language`! (`!MSIL`!) bezeichnet worden, mit der `F33f`_`[Standardisierung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Standard]`_`f der `F33f`_`[Common Language Infrastructure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Infrastructure]`_`f ist diese Bezeichnung aber verworfen worden.
>>Contents
• `F0af`_`[Grundlegende Funktionsweise`#grundlegende-funktionsweise]`_`f
• `F0af`_`[NGEN-Kompilierung (Native Image Generation)`#ngen-kompilierung-native-image-generation]`_`f
• `F0af`_`[CIL als Sprache`#cil-als-sprache]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f
-─
>>Grundlegende Funktionsweise
Bei der Kompilierung von `F33f`_`[Quellcode`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Quelltext]`_`f aus .NET-Sprachen wird nicht direkt systemeigener Programmcode erzeugt, sondern in einem ersten Schritt zunächst CIL-Code. In CIL werden die Programmbefehle als eine Folge von Bytewerten (teilweise auch mehr als ein `F33f`_`[Byte`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Byte]`_`f) angegeben. Dieser Code wird auf dem Ausführungsrechner in einem Laufzeitsystem (der `F33f`_`[Common Language Runtime`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Runtime]`_`f) zu nativem `F33f`_`[Maschinencode`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Maschinencode]`_`f übersetzt (sogenannte `F33f`_`[JIT`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JIT-Compiler]`_`f-Kompilierung) und ausgeführt.
Während der Übersetzung werden auch die Sicherheit und die Korrektheit des Codes (Manipulation) überprüft.
>>NGEN-Kompilierung (Native Image Generation)
Alternativ zur JIT-Kompilierung ist es auch möglich, ein Programm `*vor`* dessen Ausführung zu übersetzen. Das Programm `*Native Image Generator (NGEN)`* bietet im .NET-Framework diese Möglichkeit. Dies macht die Übersetzung des Programmes zur Laufzeit überflüssig, so dass der Programmstart beschleunigt werden kann.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f] Der vorerzeugte Programmcode kann allerdings nicht auf andere `F33f`_`[Plattformen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Plattform_(Computer)]`_`f übertragen werden. Hier ist wieder eine Neukompilierung mit NGEN notwendig oder der Rückfall auf den JIT-Compiler.
Auch ein nativ kompiliertes Programm benötigt immer die Laufzeitumgebung, da wesentliche `F33f`_`[Metadaten`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Metadaten]`_`f nicht Teil des nativen Programmabbildes werden. Somit wird lediglich die JIT-Kompilierung überflüssig.
>>CIL als Sprache
Es ist möglich, den CIL-Zwischencode durch assemblerähnliche Befehle zu repräsentieren und so auch direkt Programme in CIL zu programmieren.
Siehe `F33f`_`[Hallo-Welt-Beispiel in CIL`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Liste_von_Hallo-Welt-Programmen/Programmiersprachen]`_`f.
>>Einzelnachweise
`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f Surupa Biswas: `*Die Leistungsvorteile durch NGen.`* In: `*Microsoft.`* 17. Juni 2009, abgerufen am 29. Januar 2025.
`c`F0af`_`[↑ Back to top`#top]`_`f`a